home *** CD-ROM | disk | FTP | other *** search
/ Java Certification Exam Guide / McGrawwHill-JavaCertificationExamGuide.iso / pc / Web Links and Code / code / chap27 / answer / NewPassenger.java < prev    next >
Encoding:
Java Source  |  1997-04-20  |  1.9 KB  |  78 lines

  1. package client;
  2.  
  3. import java.awt.*;
  4. import java.io.IOException;
  5.  
  6. public class NewPassenger extends Frame {
  7.    String    thePassenger;
  8.    TextField passengerField;
  9.    Choice    seatNumber;
  10.    Button    makeRes;
  11.    CanUpdate ui;
  12.    int[]     openSeats;
  13.  
  14.    public NewPassenger(CanUpdate edna) throws IOException {
  15.       super("Make New Reservation");
  16.  
  17.       ui = edna;
  18.  
  19.       setLayout(new GridLayout(3, 1));
  20.       Panel p;
  21.  
  22.       p = new Panel();
  23.       p.add(new Label("passenger: "));
  24.  
  25.       passengerField = new TextField(30);
  26.       p.add(passengerField);
  27.       add(p);
  28.  
  29.       p = new Panel();
  30.       openSeats = new Client().getOpenSeats();
  31.          
  32.       seatNumber = new Choice();
  33.       for (int i = 0; i < openSeats.length; i++) {
  34.          String s = new Integer(openSeats[i]).toString();
  35.          seatNumber.addItem(s);
  36.       }
  37.       p.add(seatNumber);
  38.  
  39.       add(p);
  40.  
  41.       p = new Panel();
  42.       makeRes = new Button("make reservation");
  43.       p.add(makeRes);
  44.       add(p);
  45.    }
  46.  
  47.    public boolean handleEvent(Event e) {
  48.       if (e.id == Event.WINDOW_DESTROY) {
  49.          hide();
  50.          return true;
  51.       }
  52.       return super.handleEvent(e);
  53.    }
  54.  
  55.    public boolean action(Event e, Object what) {
  56.       if (e.target == makeRes) {
  57.  
  58.          String passenger = passengerField.getText();
  59.          passenger = passenger.trim();
  60.          if (passenger.length() > 0) {       
  61.             int seatIndex = seatNumber.getSelectedIndex();
  62.             int seatNum = openSeats[seatIndex];
  63.             try {
  64.                new Client().reservePassenger(passenger, seatNum);
  65.             } catch (IOException x) {
  66.                System.out.println("Unable to reserve " + passenger +
  67.                   "for seat number " + seatNum);
  68.             }
  69.          }
  70.  
  71.          hide();
  72.          ui.updateUI();
  73.          return true;
  74.       }
  75.       return super.action(e, what);
  76.    }
  77. }
  78.